
# 可变化参数
"""
作用 ： 解决在调用时可以传递不同数量的值 ，比如传递多个值。
包括 ： 列表形式的可变参数 和 字典形式的可变参数

列表形式的可变参数 ： 在参数名前加一个*
def 函数名(*args):
    代码块

字典形式的可变参数 ： 在参数前面加两个*
def 函数名(**kwargs):
    代码块

"""

def add(x,y,*args):
    print(args)
    total = x + y + sum(args)
    return total

# print(add(3,4))
# print(add(3,4,5))
# print(add(3,4,5,6))
# print(add(3,4,5,6,5,6,7,8,9,9))
# lst = [6,5,6,7,8,9,9]
# print(add(3,4,*lst))
# tp = (6,5,6,7,8,9,9)
# print(add(3,4,*tp))
#
# print(add(*lst))
# print(add(*tp))

def add1(x,y,**kwargs):
    print(kwargs)
    total = x + y
    for x in kwargs.values():
        total += x
    return total


print(add1(3,4,a=5))
print(add1(3,4,a=5,b=6))
dct = {'x':8,'y':10}
# print(add1(3,4,**dct))
print(add1(**dct))

# 练习1 ： 写一个乘法的函数 ，内部代码块不能直接乘法，

# 练习2 ： 输入一个ip地址，写一个函数，判断它是否是ip地址
ip = '12.12.12.m'
